home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX 6.2 Development Libraries
/
SGI IRIX 6.2 Development Libraries.iso
/
dist
/
complib.idb
/
usr
/
share
/
catman
/
p_man
/
cat3
/
complib
/
sopmtr.z
/
sopmtr
Wrap
Text File
|
1996-03-14
|
3KB
|
133 lines
SSSSOOOOPPPPMMMMTTTTRRRR((((3333FFFF)))) SSSSOOOOPPPPMMMMTTTTRRRR((((3333FFFF))))
NNNNAAAAMMMMEEEE
SOPMTR - overwrite the general real M-by-N matrix C with SIDE = 'L'
SIDE = 'R' TRANS = 'N'
SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
SUBROUTINE SOPMTR( SIDE, UPLO, TRANS, M, N, AP, TAU, C, LDC, WORK, INFO )
CHARACTER SIDE, TRANS, UPLO
INTEGER INFO, LDC, M, N
REAL AP( * ), C( LDC, * ), TAU( * ), WORK( * )
PPPPUUUURRRRPPPPOOOOSSSSEEEE
SOPMTR overwrites the general real M-by-N matrix C with TRANS = 'T':
Q**T * C C * Q**T
where Q is a real orthogonal matrix of order nq, with nq = m if SIDE =
'L' and nq = n if SIDE = 'R'. Q is defined as the product of nq-1
elementary reflectors, as returned by SSPTRD using packed storage:
if UPLO = 'U', Q = H(nq-1) . . . H(2) H(1);
if UPLO = 'L', Q = H(1) H(2) . . . H(nq-1).
AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
SIDE (input) CHARACTER*1
= 'L': apply Q or Q**T from the Left;
= 'R': apply Q or Q**T from the Right.
UPLO (input) CHARACTER*1
= 'U': Upper triangular packed storage used in previous call to
SSPTRD; = 'L': Lower triangular packed storage used in previous
call to SSPTRD.
TRANS (input) CHARACTER*1
= 'N': No transpose, apply Q;
= 'T': Transpose, apply Q**T.
M (input) INTEGER
The number of rows of the matrix C. M >= 0.
N (input) INTEGER
The number of columns of the matrix C. N >= 0.
AP (input) REAL array, dimension
(M*(M+1)/2) if SIDE = 'L' (N*(N+1)/2) if SIDE = 'R' The vectors
which define the elementary reflectors, as returned by SSPTRD.
AP is modified by the routine but restored on exit.
PPPPaaaaggggeeee 1111
SSSSOOOOPPPPMMMMTTTTRRRR((((3333FFFF)))) SSSSOOOOPPPPMMMMTTTTRRRR((((3333FFFF))))
TAU (input) REAL array, dimension (M-1) if SIDE = 'L'
or (N-1) if SIDE = 'R' TAU(i) must contain the scalar factor of
the elementary reflector H(i), as returned by SSPTRD.
C (input/output) REAL array, dimension (LDC,N)
On entry, the M-by-N matrix C. On exit, C is overwritten by Q*C
or Q**T*C or C*Q**T or C*Q.
LDC (input) INTEGER
The leading dimension of the array C. LDC >= max(1,M).
WORK (workspace) REAL array, dimension
(N) if SIDE = 'L' (M) if SIDE = 'R'
INFO (output) INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value
PPPPaaaaggggeeee 2222